package com.train.mgr.modules.biz.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.train.common.db.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 用户课时练习表
 * </p>
 *
 * @author cxg
 * @date 2025-09-30
 */
@Slf4j
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("a_lesson_user_exercise")
public class LessonUserExercise extends BaseEntity<LessonUserExercise> {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    private Long id;
    /**
     * 课程id
     */
    @TableField("coruse_id")
    private Long coruseId;

    /**
     * 课时id
     */
    @TableField("lesson_id")
    private Long lessonId;

    /**
     * 用户课时学习表id
     */
    @TableField("lesson_user_study_id")
    private Long lessonUserStudyId;

    @TableField("user_id")
    private Long userId;

    /**
     * 练习类型（1：话术跟读、2：脱稿演练、3：模拟对话）
     */
    @TableField("exercise_type")
    private Integer exerciseType;

    /**
     * 练习状态（0：未完成；1：完成）
     */
    @TableField("exercise_state")
    private Integer exerciseState;

    /**
     * 完成练习时间
     */
    @TableField("finish_time")
    private String finishTime;

    /**
     * 用时
     */
    @TableField("use_time")
    private String useTime;

    /**
     * 练习及格分
     */
    @TableField("passing_score")
    private BigDecimal passingScore;

    /**
     * 完整度
     */
    @TableField("completeness")
    private String completeness;

    /**
     * 流畅度
     */
    @TableField("fluency")
    private String fluency;

    /**
     * 自信度
     */
    @TableField("Confidence")
    private String confidence;

    /**
     * 填充词/卡顿
     */
    @TableField("fill_words_stuttering")
    private String fillWordsStuttering;

    /**
     * 语速音量
     */
    @TableField("speed_volume")
    private String speedVolume;
    /**
     * 完整度描述信息
     */
    @TableField("completeness_message")
    private String completenessMessage;
    /**
     * 准确度描述信息
     */
    @TableField("accuracy_message")
    private String accuracyMessage;
    /**
     * 通俗度描述信息
     */
    @TableField("speed_volume_message")
    private String speedVolumeMessage;
    /**
     * 流畅度描述信息
     */
    @TableField("fluency_message")
    private String fluencyMessage;

    /**
     * 自信度描述信息
     */
    @TableField("confidence_message")
    private String confidenceMessage;

    /**
     * 综合分
     */
    @TableField("comprehensive_score")
    private BigDecimal comprehensiveScore;

    /**
     * 及格状态;0：不及格，1：及格
     */
    @TableField("passing_state")
    private Integer passingState;

    /**
     * 练习文件id(多个用英文逗号拼接)
     */
    @TableField("exercise_files")
    private String exerciseFiles;

    /**
     * 练习序号（第几次练习）
     */
    @TableField("exercise_number")
    private Integer exerciseNumber;

    /**
     * 企业id
     */
    @TableField("customer_id")
    private Long customerId;

    /**
     * 是否已生成报告（0：否，1：生成中，2：已生成)
     */
    @TableField("is_generate_reports")
    private Integer isGenerateReports;


    /**
     * 是否删除（0:否，1：是）
     */
    @TableField("is_deleted")
    private Integer isDeleted;

    @TableField("audio_text")
    private String audioText;

    /**
     * 净语速
     */
    @TableField("wpm_avg_voiced")
    private double wpmAvgVoiced;
}
